Unit Testing এবং Integration Testing সফটওয়্যার টেস্টিংয়ের দুটি গুরুত্বপূর্ণ পর্যায়। এই দুটি টেস্টিং পদ্ধতি আলাদা আলাদা স্তরে অ্যাপ্লিকেশনের ফাংশনালিটি পরীক্ষা করে, যাতে ডেভেলপাররা সফটওয়্যার ত্রুটি মুক্ত এবং স্থিতিশীল রাখেন।
Unit Testing হল একটি সফটওয়্যার টেস্টিং পদ্ধতি, যার মাধ্যমে অ্যাপ্লিকেশনের প্রতিটি ছোট অংশ বা ইউনিট পরীক্ষা করা হয়। সাধারণত এটি একটি ফাংশন, মেথড, অথবা ক্লাসের লজিক্যাল ফাংশনালিটি পরীক্ষা করার জন্য করা হয়। ইউনিট টেস্টের লক্ষ্য হল, একেকটি মডিউল বা কোডের ছোট ছোট অংশের সঠিকতা নিশ্চিত করা।
ধরা যাক, একটি Calculator ক্লাস আছে, যা দুটি সংখ্যা যোগ, বিয়োগ, গুণ এবং ভাগ করতে সক্ষম। এখানে একটি ইউনিট টেস্টের উদাহরণ দেওয়া হলো, যেখানে Add মেথড পরীক্ষা করা হচ্ছে:
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
}
[TestClass]
public class CalculatorTests
{
[TestMethod]
public void TestAddMethod()
{
Calculator calc = new Calculator();
int result = calc.Add(2, 3);
Assert.AreEqual(5, result); // Expected output is 5
}
}
Integration Testing হল টেস্টিংয়ের একটি স্তর, যেখানে একাধিক ইউনিট (যেমন, বিভিন্ন মডিউল, ক্লাস, বা ফাংশন) একত্রিত করে পরীক্ষা করা হয়। এর লক্ষ্য হল বিভিন্ন ইউনিট একত্রে কিভাবে কাজ করছে তা পরীক্ষা করা এবং একক ইউনিটে সঠিকভাবে কাজ করার পরও, তাদের একত্রে কাজ করার সময় সমস্যা সৃষ্টি না হয় তা নিশ্চিত করা।
ধরা যাক, একটি OrderService মডিউল আছে, যা একটি অর্ডার প্লেস করার পরে ডাটাবেসে সেই অর্ডার সেভ করে। এখানে একটি ইন্টিগ্রেশন টেস্টের উদাহরণ দেওয়া হলো, যেখানে OrderService এবং ডাটাবেসের ইন্টারঅ্যাকশন পরীক্ষা করা হচ্ছে:
public class OrderService
{
private readonly IOrderRepository _orderRepository;
public OrderService(IOrderRepository orderRepository)
{
_orderRepository = orderRepository;
}
public void PlaceOrder(Order order)
{
_orderRepository.Save(order);
}
}
[TestClass]
public class OrderServiceTests
{
[TestMethod]
public void TestPlaceOrderIntegration()
{
var orderRepository = new Mock<IOrderRepository>();
var orderService = new OrderService(orderRepository.Object);
var order = new Order { Id = 1, ProductName = "Laptop" };
orderService.PlaceOrder(order);
orderRepository.Verify(r => r.Save(It.Is<Order>(o => o.Id == 1)), Times.Once());
}
}
এই টেস্টে, OrderService এবং IOrderRepository এর মধ্যে ইন্টিগ্রেশন পরীক্ষা করা হচ্ছে। এই টেস্টটি নিশ্চিত করে যে, PlaceOrder মেথড অর্ডারটি সেভ করার জন্য Save মেথডটি একবার কল করছে।
বৈশিষ্ট্য | ইউনিট টেস্টিং | ইন্টিগ্রেশন টেস্টিং |
---|---|---|
পরীক্ষা করা হয় | একক ইউনিট বা ফাংশন | একাধিক ইউনিট বা মডিউল একত্রে |
দৃষ্টিকোণ | ডেভেলপার-সেন্ট্রিক | সিস্টেম-সেন্ট্রিক |
বাগ সনাক্তকরণ | কোডের ছোট ত্রুটির জন্য | ইউনিটের মধ্যে আন্তঃক্রিয়া সমস্যার জন্য |
ফোকাস | কোডের লজিক বা কার্যক্রম | মডিউল বা সিস্টেমের ইন্টারঅ্যাকশন |
টেস্ট সময় | দ্রুত এবং ছোট সময় | সময় বেশি লাগে |
Unit Testing এবং Integration Testing সফটওয়্যার ডেভেলপমেন্টের গুরুত্বপূর্ণ অংশ। ইউনিট টেস্টিং কোডের ছোট অংশ পরীক্ষা করে এবং সেগুলির কার্যক্ষমতা নিশ্চিত করে, যেখানে ইন্টিগ্রেশন টেস্টিং বিভিন্ন মডিউলের একত্রিত কাজ পরীক্ষা করে। দুটি টেস্টিং পদ্ধতিই অ্যাপ্লিকেশনের গুণগত মান এবং নির্ভরযোগ্যতা বাড়াতে সাহায্য করে। সফল সফটওয়্যার ডেভেলপমেন্টে, এগুলির সংমিশ্রণ অত্যন্ত গুরুত্বপূর্ণ।
common.read_more